//using System;
//using System.Collections.Generic;

//namespace PortalCurriculo.DAL.Publicidades
//{
//    public class Contrato : IContrato
//    {
//        PortalCurriculoDataContext portalCurriculoDB = new PortalCurriculoDataContext();

//        #region Contrato Members

//        public void Salvar(Publicidades.Contrato contrato)
//        {
//            ExecutarLinq(contrato, Acao.INSERIR);
//        }

//        public void Alterar(Publicidades.Contrato contrato)
//        {
//            ExecutarLinq(contrato, Acao.ALTERAR);
//        }

//        public Publicidades.Contrato SelecionarPorCodigo(Publicidades.Contrato contrato)
//        {
//            return ConverterParaModel(SelecionarLinq(contrato, Acao.RETORNAR_UNICO))[0];
//        }

//        public List<Publicidades.Contrato> Selecionar(Publicidades.Contrato contrato)
//        {
//            return ConverterParaModel(SelecionarLinq(contrato, Acao.LISTAR));
//        }

//        public void Inativar(Publicidades.Contrato contrato)
//        {
//            ExecutarLinq(contrato, Acao.INATIVAR);
//        }

//        #endregion

//        private void ExecutarLinq(Publicidades.Contrato contrato, string acao)
//        {
//            portalCurriculoDB.pContratoManipulacao(acao, contrato.Codigo, contrato.Nome,
//               contrato.DescricaoServico, contrato.Pessoa.Codigo, contrato.Representante.Codigo,
//               contrato.TipoContrato.Codigo, contrato.DataContratoInicio, contrato.DataContratoTermino,
//               contrato.DataPublicacaoInicio, contrato.DataPublicacaoTermino, contrato.FormaPagamento.Codigo,
//               contrato.TabelaPrecoPublicidade.Codigo, contrato.Valor, contrato.Ativo);
//        }

//        private ISingleResult<pContratoManipulacaoResult> SelecionarLinq(Publicidades.Contrato contrato, string acao)
//        {
//            return portalCurriculoDB.pContratoManipulacao(acao, contrato.Codigo, contrato.Nome,
//               contrato.DescricaoServico, contrato.Pessoa.Codigo, contrato.Representante.Codigo,
//               contrato.TipoContrato.Codigo, contrato.DataContratoInicio, contrato.DataContratoTermino,
//               contrato.DataPublicacaoInicio, contrato.DataPublicacaoTermino, contrato.FormaPagamento.Codigo,
//               contrato.TabelaPrecoPublicidade.Codigo, contrato.Valor, contrato.Ativo);
//        }

//        private List<Publicidades.Contrato> ConverterParaModel(ISingleResult<pContratoManipulacaoResult> resultContrato)
//        {
//            ISingleResult<pContratoManipulacaoResult> result = resultContrato;
//            List<Publicidades.Contrato> contratos = new List<Publicidades.Contrato>();

//            foreach (pContratoManipulacaoResult item in result)
//            {
//                Publicidades.Contrato contrato = new Publicidades.Contrato()
//                {
//                    #region Dados Contrato
//                    Codigo = (int)item.Codigo,
//                    Nome = item.Nome,
//                    DescricaoServico = item.DescricaoServico,
//                    DataContratoInicio = (DateTime)item.DataContratoInicio,
//                    DataContratoTermino = (DateTime)item.DataContratoTermino,
//                    DataPublicacaoInicio = (DateTime)item.DataPublicacaoInicio,
//                    DataPublicacaoTermino = (DateTime)item.DataPublicacaoTermino,
//                    Valor = (decimal)item.Valor,
//                    Ativo = (bool)item.Ativo
//                    #endregion
//                };

//                #region Dados Pessoa
//                Pessoa.Pessoa pessoaDAL = new Pessoa.Pessoa();
//                contrato.Pessoa.Codigo = (int)item.CodigoPessoa;
//                contrato.Pessoa = pessoaDAL.SelecionarPorCodigo(contrato.Pessoa);
//                #endregion

//                #region Dados Representante
//                DadoEmpresa.Representante representanteDAL = new DadoEmpresa.Representante();
//                contrato.Representante.Codigo = (int)item.CodigoRepresentante;
//                contrato.Representante = representanteDAL.SelecionarPorCodigo(contrato.Representante);
//                #endregion

//                #region Dados TipoContrato
//                TipoContrato tipoContratoDAL = new TipoContrato();
//                contrato.TipoContrato.Codigo = (int)item.CodigoTipoContrato;
//                contrato.TipoContrato = tipoContratoDAL.SelecionarPorCodigo(contrato.TipoContrato);
//                #endregion

//                #region Dados FormaPagamento
//                FormaPagamento formaPagamentoDAL = new FormaPagamento();
//                contrato.FormaPagamento.Codigo = (int)item.CodigoFormaPagamento;
//                contrato.FormaPagamento = formaPagamentoDAL.SelecionarPorCodigo(contrato.FormaPagamento);
//                #endregion

//                #region Dados TabelaPrecoPublicidade
//                TabelaPrecoPublicidade tabelaPrecoPublicidadeDAL = new TabelaPrecoPublicidade();
//                contrato.TabelaPrecoPublicidade.Codigo = (int)item.CodigoTabelaPrecoPublicidade;
//                contrato.TabelaPrecoPublicidade = tabelaPrecoPublicidadeDAL.SelecionarPorCodigo(contrato.TabelaPrecoPublicidade);
//                #endregion

//                contratos.Add(contrato);
//            }

//            return contratos;
//        }
//    }
//}
